The detection of the drivable road surface ahead is an important function for many driver assistance systems as well as for autonomous vehicles. Detection of the drivable road surface using visual information from cameras is typically used in many conventional autonomous driving systems. Usually, a camera is mounted on the front of the vehicle to capture the road images. However, the captured images may be of poor quality in various environments, weather conditions, lighting conditions, and the like. As such, conventional drivable road surface detection systems cannot perform well in many real-world driving environments.